PART 13. 머신러닝

목차


학습 목표

📖 목차


13.1 머신러닝의 개요

머신러닝은 데이터를 이용해 컴퓨터가 규칙을 학습하고 예측하도록 만드는 기술이다.

머신러닝의 종류

머신러닝 절차

  1. 데이터 수집
  2. 데이터 전처리
  3. 모델 생성 및 학습
  4. 모델 평가

13.2 머신러닝 분류

k-최근접 이웃(k-NN)

가장 가까운 이웃 데이터를 기준으로 분류하는 알고리즘이다.

본 예제는 scikit-learn의 데이터 분리(train_test_split)와 모델 학습(fit), 성능 평가(score) 흐름을 보여 준다. 훈련/테스트 세트를 분리함으로써 모델의 일반화 성능을 점검할 수 있다.


from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier

iris = load_iris()
X = iris.data
y = iris.target

X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)

knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)

예측과 정확도

본 예제는 해당 단원에서 다루는 핵심 개념을 코드로 확인하기 위한 예시이다. 변수의 의미를 파악한 뒤, 입력·처리·출력의 흐름을 따라 실행 결과를 해석하는 것이 중요하다.


print("훈련 정확도:", knn.score(X_train, y_train))
print("테스트 정확도:", knn.score(X_test, y_test))

13.3 머신러닝 회귀

선형 회귀

연속적인 값을 예측하는 대표적인 회귀 모델이다.

본 예제는 scikit-learn의 데이터 분리(train_test_split)와 모델 학습(fit), 성능 평가(score) 흐름을 보여 준다. 훈련/테스트 세트를 분리함으로써 모델의 일반화 성능을 점검할 수 있다.


from sklearn.datasets import fetch_california_housing
from sklearn.linear_model import LinearRegression

housing = fetch_california_housing()
X = housing.data
y = housing.target

X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)

lr = LinearRegression()
lr.fit(X_train, y_train)

print("테스트 정확도:", lr.score(X_test, y_test))

13.4 [플러스 예제] MNIST 분류하기

본 예제는 matplotlib을 이용한 시각화 기본 흐름(데이터 준비 → 그래프 함수 호출 → show())을 제시한다.


from sklearn.datasets import fetch_openml
import matplotlib.pyplot as plt

mnist = fetch_openml('mnist_784', version=1)
X = mnist.data
y = mnist.target

X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)

knn = KNeighborsClassifier()
knn.fit(X_train, y_train)

print("MNIST 정확도:", knn.score(X_test, y_test))